//=============================================================================
///	Environment
//=============================================================================

#ifndef	__SENV_H__
#define	__SENV_H__

#include "stype.h"

#ifdef __cplusplus
extern "C" {
#endif

void init_env(void);
void term_env(void);
SExp make_empty_env(void);
void extend_env(SExp arglist, SExp values[], int n);
void setq(SExp sym, SExp val);
void defconst(SExp sym, SExp val);
SExp getvar(SExp sym);
SExp global_variable_ref(SExp sym);

void push_env(SExp newenv);
void pop_env(void);
SExp get_current_env(void);
void set_env(SExp env);
void reset_env_to_top(void);



void mark_env(void);

#ifdef __cplusplus
} // extern "C"
#endif

#endif
